<?php
namespace system\model;
/**
 * Created by phpstrom.
 * User:wangyahe
 * Date: 2017/6/5
 * Time: 21:12
 */
use houdunwang\model\Model;
use houdunwang\validate\Validate;

class Admin extends Model
{
	//操作数据表
	protected $table='admin';
	//登录
	public function login(){
         //echo 'login';die;
		//1.验证数据不能为空
		$data = [
			'admin_username'=>q('post.admin_username'),
			'admin_password'=>q('post.admin_password'),
			'code'=>q('post.code'),
		];
//		echo $data['admin_password'];die();//1
//		dd($data['admin_password']);die();
		$res = Validate::make( [
			[ 'admin_username', 'isnull', '请输入用户名', 3 ],
			[ 'admin_password', 'isnull', '请输入密码', 3 ],
			[ 'code', 'isnull', '请输入验证码', 3 ],
		] ,$data);
		//2.比对用户名是否正确
		$userInfo = $this->where('admin_username',$data['admin_username'])->first();
		if(!$userInfo){
			return ['valid'=>0,'msg'=>'用户名不正确'];
		}
		//校验密码是否正取
		if(!password_verify($data['admin_password'],$userInfo['admin_password']))
		{
			return ['valid'=>0,'msg'=>'用户密码不正确'];
		}
		//p($data);die;
//		$res=Validate::make( [
//			//字段、验证规则、提示消息、验证条件,
//			[ 'admin_username', 'isnull', '用户名不能为空', self::MUST_VALIDATE ],
//			[ 'admin_password', 'isnull', '密码不能为空', self::MUST_VALIDATE ],
//			[ 'code', 'isnull', '验证码不能为空', self::MUST_VALIDATE ]
//		],$data );
//		if($res===false){
//			return ['valid'=>0,'msg'=>Validate::getError()];
//			//print_r(Validate::getError());
//		}
		//2.比对用户名密码是否正确
//		$userInfo = $this->where('admin_username',$_POST['admin_username'])->where('admin_password', Crypt::encrypt($_POST['admin_password']))->first();
//		if(!$userInfo){
//			return ['valid'=>0,'msg'=>'用户名或者密码不正确'];
//		}
		//3.比对验证码是否正确
//		if(strtolower(Code::get())!=strtolower($_POST['code']))
//		{
//			return ['valid'=>0,'msg'=>'验证码不正确'];
//		}
		//3.比对验证码是否正确
		//var_dump(Code::auth( 'code' ));die;
		if(!Code::auth( 'code' ))
		{
			return ['valid'=>0,'msg'=>'验证码不正确'];
		}
		//4.将当前登录用户信息存入session
		Session::set('admin.admin_id',$userInfo['id']);
		Session::set('admin.admin_username',$userInfo['admin_username']);

		//5.返回成功
		return ['valid'=>1,'msg'=>'登录成功'];
	}
	//进行密码的修改
	public function changePassword($data){
//		echo 111;die();
		//1.进行不为空的验证
		Validate::make([
			['admin_password','required','请输入原始密码',Validate::MUST_VALIDATE],
			['new_password','required','请输入新密码',Validate::MUST_VALIDATE],
			//confirm：在手册中的模型验证：confirm：password2；用来进行新密码的验证
			['retry_password','confirm:new_password','确认密码跟新密码不一致',Validate::MUST_VALIDATE],
		]);
		//2.进行正确验证————验证原始密码是否正确
		//现货的数据库中的原始密码
		$userinfo = self::find(Session::get('admin.admin_id'));
//		p($userinfo);die;
		//将post提交的数据与数据库中的数据进行比对
		if(!password_verify($data['admin_password'],$userinfo['admin_password'])){
			return ['valid'=>0,'message'=>'原始密码不正确'];
		}
		//如果能走到这里说明验证原始密码正确，而且新密码和确认密码也是正确的
//		那就将新的修改后的密码进行存入到数据库
//		$model->title = 'hdphp'; // 修改数据对象
//		$model->save(); // 保
		//修改数据对象
//		echo 888;die();
		$userinfo->admin_password=password_hash($data['new_password'],PASSWORD_DEFAULT);
		//存入数据库
		$userinfo->save();
		//返回成功修改的消息，注意这里应该是使用message，而不是msg，因为在就你行异步的时候接收到的返回值是message
		return ['valid'=>1,'message'=>'修改成功'];
	}



















}